package ningbo.collection;

import java.lang.reflect.Array;
import java.util.ArrayList;

import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;

/**
 * @Author 宁铂
 * @Date 2021/7/27 20:24
 * @Version 1.0
 */
public class TestCollection {
    /**
     * 测试Collection接口
     */
    public static void main(String[] args) {
        /** 创建Collection相关对象 */

        /** 单个集合 */
        Collection<Integer> collection = new ArrayList<Integer>();
        collection.add(100); //向集合中添加元素
        collection.clear(); //清空当前集合中的所有元素
        collection.add(100);
        System.out.println(collection.hashCode()); // 获取集合的哈希码值
        System.out.println(collection.toString()); //toString在方法中被重写,所以打印的的是集合的具体元素
        System.out.println(collection.equals(100)); //对比等式两边是否相等
        System.out.println(collection.contains(100)); //;判断集合中是否包含指定元素
        System.out.println(collection.isEmpty()); //判断集合是否为空
        System.out.println(collection.remove(100)); //删除指定元素成功返回true
        collection.add(100);
        System.out.println(collection.size()); // 返回集合中元素的个数
        Object[] objects = collection.toArray(); // 将指定集合转换为数组Object[]
        System.out.println(Arrays.toString(objects));

        /** 多个集合 */
        Collection collection1 = new ArrayList();
        collection1.add(200);
        collection1.add(300);
        collection1.add(400);
        System.out.println(collection1);

        collection.addAll(collection1); //把括号内的集合添加到外部集合当中,添加在末尾,括号内的集合不变
        System.out.println(collection);

        System.out.println(collection.containsAll(collection1)); //判断外部集合中是否包含指定集合中的所有元素
        System.out.println(collection.removeAll(collection1)); // 删除外部集合中包含指定集合中所有的元素
        System.out.println(collection.removeAll(collection1)); //取外部集合与内部集合的公共元素,其他的元素删除

        /** 迭代集合
         *  迭代步骤:
         *  1.获取迭代器:collection.iterator();
         *  2.判断集合中是否有下一代可迭代的元素 it.hasNext();
         *  3.获取当前迭代器得到的元素 it.next();
         * */

        Iterator<Integer> iterator = collection1.iterator();
        while (iterator.hasNext())
            System.out.println(iterator.next());

    }
}